home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.image.ImageObserver;
-
- class WaveCanvas2 extends Canvas implements Runnable {
- Thread theThread;
- double[] sinValues;
- double angleIncrement;
- int waveCount;
- Image osImage;
- Graphics osg;
- int sineIndex;
- Color bkColor;
- Image bkImage;
- Color waveColor;
- int movementIncrement;
- int sleepTime;
- boolean moveWest;
- boolean moveEast;
-
- public void update(Graphics var1) {
- if (this.osImage == null) {
- this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
- this.osg = this.osImage.getGraphics();
- }
-
- this.osg.setColor(((Component)this).getBackground());
- this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
- if (this.bkImage != null) {
- int var2 = this.bkImage.getWidth(this);
- int var3 = this.bkImage.getHeight(this);
- int var4 = ((Component)this).size().width / var2;
- int var5 = ((Component)this).size().height / var3;
- ++var4;
- ++var5;
-
- for(int var6 = 0; var6 < var5; ++var6) {
- for(int var7 = 0; var7 < var4; ++var7) {
- this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
- }
- }
- }
-
- this.osg.setColor(this.waveColor);
- int var8 = 0;
- int var9 = ((Component)this).size().height / 2 + (int)(this.sinValues[this.sineIndex] * (double)(((Component)this).size().height / 2));
- int var11 = var9;
- int var13 = 0;
- int var14 = 0;
- int var16 = this.sineIndex;
-
- while(var13 < ((Component)this).size().width) {
- var13 = var8 + 1;
- var14 = (int)(this.sinValues[var16] * (double)(((Component)this).size().height / 2) + (double)(((Component)this).size().height / 2));
- this.osg.drawLine(var8, var11, var13, var14);
- var8 = var13;
- var11 = var14;
- ++var16;
- if (var16 >= this.sinValues.length) {
- var16 = 0;
- }
- }
-
- var1.drawImage(this.osImage, 0, 0, (ImageObserver)null);
- }
-
- public WaveCanvas2(Applet var1, int var2) {
- this.GetParameters(var1, var2);
- }
-
- void GetParameters(Applet var1, int var2) {
- String var3 = var1.getParameter("waveBkColor" + var2);
- this.bkColor = AppletParam2.GetColor(var3, (Color)null);
- if (this.bkColor != null) {
- ((Component)this).setBackground(this.bkColor);
- }
-
- var3 = var1.getParameter("waveBkImage" + var2);
- this.bkImage = var1.getImage(var1.getCodeBase(), var3);
- var3 = var1.getParameter("waveColor" + var2);
- this.waveColor = AppletParam2.GetColor(var3, Color.black);
- var3 = var1.getParameter("waveIncrement" + var2);
- this.movementIncrement = AppletParam2.GetInt(var3, 2);
- var3 = var1.getParameter("waveCount" + var2);
- this.waveCount = AppletParam2.GetInt(var3, 1);
- var3 = var1.getParameter("waveSpeed" + var2);
- this.sleepTime = AppletParam2.GetInt(var3, 125);
- var3 = var1.getParameter("waveMoveDirection" + var2);
- String var4 = AppletParam2.GetString(var3, "West");
- if (var4.compareTo("West") == 0) {
- this.moveWest = true;
- this.moveEast = false;
- } else {
- this.moveWest = false;
- this.moveEast = true;
- }
- }
-
- public void Start() {
- this.theThread = new Thread(this);
- this.theThread.start();
- }
-
- public void Stop() {
- this.theThread.stop();
- this.theThread = null;
- }
-
- public void run() {
- try {
- while(true) {
- ((Component)this).repaint();
- Thread.sleep((long)this.sleepTime);
- if (this.moveWest) {
- this.sineIndex += this.movementIncrement;
- if (this.sineIndex >= this.sinValues.length) {
- this.sineIndex = 0;
- }
- } else {
- this.sineIndex -= this.movementIncrement;
- if (this.sineIndex <= 0) {
- this.sineIndex = this.sinValues.length - 1;
- }
- }
- }
- } catch (InterruptedException var1) {
- }
- }
-
- public synchronized void reshape(int var1, int var2, int var3, int var4) {
- this.angleIncrement = (Math.PI * 2D) / ((double)var3 / (double)this.waveCount);
- int var5 = var3 / this.waveCount;
- this.sinValues = new double[var5];
- double var6 = (double)0.0F;
-
- for(int var8 = 0; var8 < var5; ++var8) {
- this.sinValues[var8] = Math.sin(var6);
- var6 += this.angleIncrement;
- }
-
- this.osImage = null;
- if (this.moveWest) {
- this.sineIndex = 0;
- } else {
- this.sineIndex = this.sinValues.length - 1;
- }
-
- super.reshape(var1, var2, var3, var4);
- }
-
- public Dimension minimumSize() {
- return new Dimension(10, 10);
- }
-
- public Dimension preferredSize() {
- return new Dimension(10, 10);
- }
- }
-